home *** CD-ROM | disk | FTP | other *** search
/ Super PC 34 / Super PC 34 (Shareware).iso / spc / UTIL / DJGPP2 / V2 / DJTST200.ZIP / tests / libc / ansi / setjmp / sj.c < prev   
Encoding:
C/C++ Source or Header  |  1995-03-20  |  1.0 KB  |  34 lines

  1. #include <stdio.h>
  2. #include <setjmp.h>
  3.  
  4. int main(void)
  5. {
  6.   jmp_buf a, b;
  7.   int i;
  8.  
  9.   printf("test of setjmp/longjmp\n");
  10.  
  11.   i = setjmp(a);
  12.  
  13.   printf("\n");
  14.   printf("ax=%08lx bx=%08lx cx=%08lx dx=%08lx si=%08lx di=%08lx\n",
  15.      a->__eax, a->__ebx, a->__ecx, a->__edx, a->__esi, a->__edi);
  16.   printf("cs:eip=%04x:%08lx bp=%08lx ss:esp=%04x:%08lx\n",
  17.      a->__cs, a->__eip, a->__ebp, a->__ss, a->__esp);
  18.   printf("cs=%04x ds=%04x es=%04x fs=%04x gs=%04x ss=%04x fl=%08lx\n",
  19.      a->__cs, a->__ds, a->__es, a->__fs, a->__gs, a->__ss, a->__eflags);
  20.  
  21.   setjmp(b);
  22.   printf("\n");
  23.   printf("ax=%08lx bx=%08lx cx=%08lx dx=%08lx si=%08lx di=%08lx\n",
  24.      b->__eax, b->__ebx, b->__ecx, b->__edx, b->__esi, b->__edi);
  25.   printf("cs:eip=%04x:%08lx bp=%08lx ss:esp=%04x:%08lx\n",
  26.      b->__cs, b->__eip, b->__ebp, b->__ss, b->__esp);
  27.   printf("cs=%04x ds=%04x es=%04x fs=%04x gs=%04x ss=%04x fl=%08lx\n",
  28.      b->__cs, b->__ds, b->__es, b->__fs, b->__gs, b->__ss, b->__eflags);
  29.  
  30.   if (i == 0)
  31.     longjmp(a, 1);
  32.   return 0;
  33. }
  34.